Relationship analysis and mapping for interrelated multi-layered datasets

ABSTRACT

Systems and methods are provided for analyzing and visualizing relationship of multi-layered datasets. A system stores original datasets in a datastore. The system generates first derivative datasets from the original datasets, and generates second derivative datasets from at least the first derivative datasets. The system determines relationships among the original datasets, the first derivative datasets, and the second derivative datasets, based on an analytical relationship between two datasets, a similarity relationship between two datasets, a modification relationship between two datasets, and a user-interaction relationship between two datasets. Then, the system generates a node map including at least part of the original datasets, the first derivative datasets, and the second derivative datasets as a node, and at least part of the determined analytical, similarity, modification, and user-interaction relationships between two nodes as a link.

CROSS REFERENCE TO RELATED APPLICATIONS

This application claims the benefit under 35 U.S.C. § 119(e) of U.S.Provisional Application Ser. No. 62/595,902 filed Dec. 7, 2017, thecontent of which is incorporated by reference in its entirety into thepresent disclosure.

FIELD OF THE INVENTION

This disclosure relates to approaches for analyzing and visualizingrelationship of multi-layered datasets.

BACKGROUND

Under conventional approaches, a database system stores originaldatasets and derivative datasets derived from the original datasets,such as analysis datasets that are generated based on analysis of theoriginal datasets, user-interaction datasets that are generated uponinteraction of users with the original datasets and/or the analysisdatasets, and modifications of the original datasets. Further, thedatabase system may operate to visualize relationships among theoriginal datasets and the derivative datasets, such that users canvisually recognize the relationships. As the relationships become morecomplicated (e.g., when a derivative dataset is generated based onanother derivative dataset, and/or when a derivative dataset isgenerated based on a group of other datasets), existing technologiesfail to effectively analyze and/or visualize the relationships among thevariety of datasets. As a result, users may not properly recognize therelationships among the datasets and/or may not make proper decisionswith respect to the datasets.

SUMMARY

Various embodiments of the present disclosure can include systems,methods, and non-transitory computer readable media. In someembodiments, a system stores original datasets in a datastore. Thesystem generates first derivative datasets from the original datasets,and generates second derivative datasets from at least the firstderivative datasets. The system determines relationships among theoriginal datasets, the first derivative datasets, and the secondderivative datasets, based on an analytical relationship between twodatasets, a similarity relationship between two datasets, a modificationrelationship between two datasets, and a user-interaction relationshipbetween two datasets. Then, the system generates a node map including atleast part of the original datasets, the first derivative datasets, andthe second derivative datasets as a node, and at least part of thedetermined analytical, similarity, modification, and user-interactionrelationships between two nodes as a link.

In some embodiments, the system further generates third derivativedatasets based on consumption of at least the second derivativedatasets, wherein the determined relationships are among the originaldatasets, and the first, second, and third derivative datasets, and thenode map also includes at least part of the third derivative datasets asa node.

In some embodiments, the system further filters the original datasets,the first derivative datasets, and the second derivative datasets,wherein the node map is generated based on the filtered datasets. Insome embodiments, the filtering is carried out at least based on timesat which datasets were generated.

In some embodiments, the system further generates, in response toselection of a node included in the node map, a focused node mapindicating the selected node and one or more nodes linked with theselected node with emphasis.

In some embodiments, the analytical relationship includes a relationshipbetween a dataset and an analysis dataset that was generated based onanalysis thereof. In some embodiments, the similarity relationshipincludes a relationship among a plurality of datasets that were analyzedtogether. In some embodiments, the modification relationship includes arelationship between a dataset and a modified dataset that was generatedbased on modification thereof. In some embodiments, the user-interactionrelationship includes a relationship between a dataset and a userdataset of a user that has interacted therewith.

In some embodiments, the node map is generated repeatedly at differentpoints in time, and the system further presents transition of thegenerated node maps.

BRIEF DESCRIPTION OF THE DRAWINGS

Certain features of various embodiments of the present technology areset forth with particularity in the appended claims. A betterunderstanding of the features and advantages of the technology will beobtained by reference to the following detailed description that setsforth illustrative embodiments, in which the principles of the inventionare utilized, and the accompanying drawings of which:

FIG. 1 illustrates an example of a dataset relationship managementsystem for managing relationships among datasets according to someembodiments.

FIG. 2 illustrates an example of a graphical user interface (GUI) forpresenting dataset relationships according to some embodiments.

FIG. 3 illustrates examples of a node map GUI for presenting datasetrelationships according to some embodiments.

FIG. 4 is a flowchart of an example of a method for managingrelationships among datasets according to some embodiments.

FIG. 5 is a block diagram that illustrates a computer system upon whichany of the embodiments described herein may be implemented.

DETAILED DESCRIPTION

A claimed solution rooted in computer technology overcomes problemsspecifically arising in the realm of computer technology. In variousimplementations, a computing system employs multiple-layeredrelationship analysis among at least original datasets, first derivativedatasets derived from the original datasets, and second derivativedatasets from the original datasets. Specifically, a computing systemstores original datasets in a datastore, generates the first derivativedatasets from the original datasets, and generates the second derivativedatasets from at least the first derivative datasets. Then, thecomputing system determines relationships among the original datasets,the first derivative datasets, and the second derivative datasets, basedon an analytical relationship between two datasets, a similarityrelationship between two datasets, a modification relationship betweentwo datasets, and a user-interaction relationship between two datasets.Thereafter, the computing system generates a node map including at leastpart of the original datasets, the first derivative datasets, and thesecond derivative datasets as a node, and at least part of thedetermined analytical, similarity, modification, and user-interactionrelationships between two nodes as a link.

FIG. 1 illustrates an example of a dataset relationship managementsystem 100 for managing relationships among datasets according to someembodiments. In the example shown in FIG. 1, the dataset relationshipmanagement system 100 includes one or more computer systems 106, one ormore user devices 130, and a dataset database 104 in communication vianetwork 102. The dataset database 104 is illustrated in FIG. 1 asseparate from the computer system(s) 106 and the user device(s) 130. Inimplementations, the dataset database 104 may be stored on the computersystem(s) 106, the user device(s) 130, or at a remote location.

In the example of the system shown in FIG. 1, one or more of thecomputer system(s) 106 is intended to represent a computer systemconfigured to provide dataset relationship management service. In someembodiments, one or more of the computer system(s) 106 is configured asa server (e.g., having one or more server blades, processors, etc.), agaming console, a handheld gaming device, a personal computer (e.g., adesktop computer, a laptop computer, etc.), a smartphone, a tabletcomputing device, and/or other device that can be programmed to generateand/or receive datasets, analyze datasets, and determine relationshipsamong datasets.

In the example of the system shown in FIG. 1, one or more of thecomputer system(s) 106 includes one or more processors 108 (alsointerchangeably referred to herein as processors 108, processor(s) 108,or processor 108 for convenience), one or more storage devices 110,and/or other components. In some embodiments, the processors 108 areprogrammed by one or more computer program instructions stored on astorage device 110. In some embodiments, the processors 108 areprogrammed by a dataset generation and reception module 112, a datasetparameter extraction module 114, a dataset parameter analysis module116, a graphical user interface (GUI) generation module 118, and adataset filtering module 120, and/or other instructions that program thecomputer system 106 to perform various applicable operations, each ofwhich are described in greater detail herein. As used herein, forconvenience, the various applicable instruction modules will bedescribed as performing an operation, when, in fact, various applicableinstructions program the processors 108 (and therefore computer system106) to perform the various applicable operations. Further details andfeatures of a computer system 106 configured for implementing featuresof the described invention may be understood with respect to computersystem 500 as illustrated in FIG. 5.

In the example of the system shown in FIG. 1, one or more of the userdevice(s) 130 is intended to represent a computing system configured touse the dataset relationship management service. In some embodiments,one or more of the user device(s) 130 is configured as a server device,a gaming console, a handheld gaming device, a personal computer (e.g., adesktop computer, a laptop computer, etc.), a smartphone, a tabletcomputing device, and/or other device that can be programmed to generateand/or receive datasets, analyze datasets, and determine relationshipsamong datasets.

In the example of the system shown in FIG. 1, one or more of the userdevice(s) 130 includes one or more processors 132 (also interchangeablyreferred to herein as processors 132, processor(s) 132, or processor 132for convenience), one or more storage devices 134, and/or othercomponents. In some embodiments, the processors 132 are programmed byone or more computer program instructions. In some embodiments, theprocessors 132 are programmed by a dataset generation and receptionmodule 112, a dataset parameter extraction module 114, a datasetparameter analysis module 116, a graphical user interface (GUI)generation module 118, and a dataset filtering module 120, and/or otherinstructions that program the user device(s) 130 to perform variousapplicable operations, each of which are described in greater detailherein. As used herein, for convenience, the various applicableinstruction modules will be described as performing various applicableoperations, when, in fact, the various applicable instructions programthe processors 132 (and therefore the user device 130) to perform thevarious applicable operations.

In some embodiments, various aspects of the dataset relationshipmanagement system 100 operate on the computer system(s) 106 and/or onthe user device(s) 130. That is, the various modules described hereineach operate on one or both of the computer system(s) 106 and/or theuser device(s) 130. For example, in an exemplary implementation, a userdevice 130 comprising a smartphone runs the dataset generation andreception module 112, permitting a user to enter one or more datasets(e.g., original datasets) into the user device 130. Then, the userdevice 130 communicates with the computer system(s) 106 via the network102, and the computer system(s) 106 receives information of the datasetsvia the dataset generation and reception module 112 and performs variousapplicable functions via the dataset parameter extraction module 114,the dataset parameter analysis module 116, the GUI generation module118, and the dataset filtering module 120. Other potential divisions offeatures between the user device(s) 130 and the computer system(s) 106may be implemented without departing from the scope of the invention(s).

In some embodiments, the dataset generation and reception module 112serves as a module in operation on the computer system(s) 106 and/or onthe user device(s) 130. In a more specific implementation, the datasetgeneration and reception module 112 includes programming instructionsthat cause the computer system(s) 106 and/or the user device(s) 130 toreceive a dataset that is internally generated within the computersystem(s) 106 and/or on the user device(s) 130, or externally generatedoutside of the computer system(s) 106 and/or on the user device(s) 130.A dataset can contain any applicable contents and be in an anyapplicable format. For example, the dataset is a text file in a formatsuch as HTML, PDF, Microsoft Office, etc., an image file in a formatsuch as JPEG, GIF, TIFF, etc., an audio file in a format such as MP3,WAV, WMA, etc., a video file in a format such as AVI, MPEG, MP4, etc., acompressed file in a format such as ZIP, an object file in a format suchas exe, and so on. A dataset is, for example, generated by an externalapplication running on the computer system(s) 106 and/or on the userdevice(s) 130, which is different from an application for implementingthe dataset relationship management system 100. In this paper, datasetsthat are not generated derivatively from other datasets managed in thedataset relationship management system 100 are referred to as originaldatasets.

In another more specific implementation, the dataset generation andreception module 112 includes programming instructions that cause thecomputer system(s) 106 and/or the user device(s) 130 to generate one ormore original datasets. The original datasets generated by the datasetgeneration and reception module 112 may or may not be distinguished fromoriginal datasets generated by external applications.

In still another more specific implementation, the dataset generationand reception module 112 includes programming instructions that causethe computer system(s) 106 and/or the user device(s) 130 to generatevarious applicable derivative datasets based on the original datasets.Depending on a specific implementation, the various applicablederivative datasets may include an analysis dataset that is generatedbased on analysis of one or more datasets, a user-interaction datasetthat is generated upon interaction of one or more users with one or moreoriginal datasets and/or other non-user-interaction datasets (e.g.,analysis datasets, modification datasets), and a modification dataset,which is a modification and/or transformation of other datasets (e.g.,original datasets, analysis datasets, user-interaction datasets). In aspecific implementation, the analysis of a dataset may include analysismade based on or using any applicable tools such as drill-downanalytical tools, time-series tools, spreadsheet applications, and soon. Also, depending on a specific implementation, the various applicablederivative datasets may be generated automatically by the datasetgeneration and reception module 112 based on a specific datasetgeneration algorithm, and/or by user input. In some embodiments, thedataset generation and reception module 112 stores the received datasetsand/or the generated datasets in applicable datastore such as thedataset database 104.

In some embodiments, the dataset parameter extraction module 114 servesas a module in operation on the computer system(s) 106 and/or on theuser device(s) 130. In some embodiments, the dataset parameterextraction module 114 includes programming instructions that cause thecomputer system(s) 106 and/or the user device(s) 130 to extractparameter information from data fields of one or more datasets.Parameter extraction may include an analysis of various data fields ofcontents of the datasets and/or an analysis of various data fields ofmetadata of the datasets to generate additional information related tothe parameter. Newly-generated information may be stored with orseparately from the original datasets. Although the current discussionrefers to extracted parameters being stored with the originaldataset(s), this is for exemplary purposes only.

In some embodiments, the dataset parameter extraction module 114implements a transform, translation, normalization, and/or otheroperation on a data field of a dataset in extracting a parameter. In aspecific implementation, parameter extraction on a dataset may includeperforming image analysis on image data, performing automatic speechrecognition on audio data, performing both image analysis and automaticspeech recognition on video data, and/or performing textual analysis ontext data. In a specific implementation, parameter extraction on adataset may return parameter analysis information capable of beingcompared to parameter analysis information of a similar type. In aspecific implementation, parameter extraction on a dataset may includeextraction of chronological information indicating time when a datasetis generated, analyzed, accessed, modified, saved, and so on.

In some embodiments, the dataset parameter extraction module 114performs parameter extraction on textual information using a TF-IDF(term frequency-inverse document frequency) method, as follows. In someimplementations, textual information may be translated to a commonlanguage prior to analysis. In some implementations, text may beanalyzed without translation. In some implementations, text may beparsed via the use of various text parsing tools, including, forexample, a stemmer tool configured to break words down into word stems.Stemming tools may be useful when performing word frequency analysis, asvarious forms of the same word may all be counted as the same word.

In some embodiments, translation includes the use of a dataset specifickey-word dictionary. Engineering terms may not translate directly basedon standard translation dictionaries. For example, due to languageidiosyncrasies and usage patterns, the French or Spanish description ofa dataset may not match the English description after translation.Accordingly, foreign language words for dataset description may bespecifically mapped to their translated equivalents by the datasetspecific key-word dictionary.

After initial text preparation, TF-IDF may proceed. Each word stem (orword, if stemming has not been performed), may have a TF-IDF scorecomputed for it. The TF-IDF for each word stem may be computed by theequation tf-idf(t, d)=(# times term t occurs in document d)*log((#documents)/(1+(# documents containing term t))). Thus, the formulamultiplies the term frequency by the inverse document frequency. Theterm frequency is computed as the number of times the term t appears inthe document d. The inverse document frequency is computed as thelogarithm of the total number of documents divided by one plus thenumber of documents containing the term t. Terms that occur morefrequently in all documents may have a low IDF, while rare terms mayhave a high IDF. As can be seen, the term inside the logarithm of theIDF calculation approaches one as the number of documents containing theterm increases. Thus, the IDF approaches zero. Accordingly, forextremely common words such as ‘the,’ ‘an,’ etc., the TF-IDF scoreapproaches zero. Thus, the TF-IDF method scores each word stem based onhow frequently it appears in a document offset by how frequently itappears throughout other documents. As used by the dataset parameterextraction module 114, the TF-IDF method may be performed onunstructured text fields (e.g., dataset description) of datasets asdocuments. The documents to which each unstructured text field iscompared may include unstructured text fields of all datasets stored inthe dataset database 104.

In some embodiments, the dataset parameter extraction module 114computes the IDF of one or more terms in datasets stored in the datasetdatabase 104 and store IDF information in association with the datasetdatabase 104. IDF information may be stored for a predetermined numberof terms, and may be filtered based on a document frequency of eachterm. Computing and storing IDF information of terms in the datasetdatabase 104 may reduce a computational load during parameterextraction. For example, when computing TF-IDF results for a datasetthat is newly introduced to the dataset 104, the dataset parameterextraction module 114 may compute term frequencies for word stems in thenew document and compare with the stored IDF values to compute TF-IDFvalues. The dataset parameter extraction module 114 may further updatethe stored IDF values when new data is introduced to the datasetdatabase 104.

In some embodiments, the dataset parameter extraction module 114 isconfigured to perform TF-IDF analysis on an audio data field of adataset after an automatic speech recognition process is performed onthe dataset.

In some embodiments, the dataset parameter analysis module 116 serves asa module in operation on the computer system(s) 106 and/or on the userdevice(s) 130. In some embodiments, the dataset parameter analysismodule 116 includes programming instructions that cause the computersystem(s) 106 and/or the user device(s) 130 to compute a relationship oftwo or more datasets stored in the dataset database 104, based on theparameters extracted by the dataset parameter extraction module 114. Insome embodiments, the dataset parameter analysis module 116 performscomparison of parameter values between two or more datasets(hereinafter, referred to as “target datasets”). The comparison resultsof these computations may be stored with datasets in a related datafield, or in any other suitable data structure.

In some embodiments, the dataset parameter analysis module 116 obtains,as a comparison result, a type of relationship among multiple datasets.The type of relationship includes an analysis relationship, an inclusiverelationship, a modification relationship, a user relationship, and amanagement relationship. In more detail, an analysis relationshipincludes a relationship in which a dataset is generated based onanalysis of other one or more datasets and a relationship in which adataset is generated together with another dataset based on analysis ofone or more datasets. For example, when dataset B is generated based onanalysis of dataset A, dataset A has an analyzed-in relationship (i.e.,A used in B) with dataset B, and dataset B has an analyzed-by (i.e., Buses A) with dataset A. In more detail, an inclusive relationshipincludes a relationship in which a dataset is included in anotherdataset. In more detail, a modification relationship includes arelationship in which a dataset is generated based on modification ofanother dataset. In more detail, a user relationship includes arelationship in which a dataset is generated based on user's originationor user access of another dataset. For example, when dataset A iscreated based on origination of a user B represented by dataset B,dataset A has a created-by relationship (i.e., A is created by a user B)with dataset B, and dataset B has a created relationship (i.e., Bcreated A) with dataset A. Similarly, when dataset A is modified by auser B represented by dataset B, dataset A has a modified-byrelationship (i.e., A is modified by a user B) with dataset B, anddataset B has a modified relationship (i.e., B modified A) with datasetA. Similarly, when dataset A is viewed by a user B represented bydataset B, dataset A has a viewed-by relationship (i.e., A is viewed bya user B) with dataset B, and dataset B has a viewed relationship (i.e.,B viewed A) with dataset A. Similarly, when dataset A is shared by auser B represented by dataset B, dataset A has a shared-by relationship(i.e., A is shared by a user B) with dataset B, and dataset B has ashared relationship (i.e., B shared A) with dataset A. In someembodiments, with respect to the various types of relationships, APIs of“analyzed_in” “analyzed_by” “analyzing” “in_analysis_with”“in_path_with” “saved_in” “saving” “modifier_of” “user_of” “modified_by”“used_by”, “in-folder-with”, “created_by” “created” “modified_by”“modified” “viewed_by” “viewed” “shared_with” and “shared_by” may beemployed.

In some embodiments, comparison among datasets is performed according toa data gravitation classification (DGC) algorithm in order to determinea proximity degree of datasets. The DGC algorithm is a dataclassification algorithm based on data gravitation, and the basicprinciple of the DGC algorithm is to classify datasets by comparing thedata gravitation between different data classes. In the DGC algorithm, akind of “force” called data gravitation between two datasets iscomputed. Datasets from the same class are combined as a result ofgravitation. On the other hand, data gravitation between different dataclasses can be compared. A larger gravitation from a class means adataset belongs to a particular class. One outstanding advantage of theDGC, in comparison with other classification algorithms is its simpleclassification principle with high performance. Further, in order toimplement a DGC algorithm, feature weights of extracted parameters arealso computed. The feature weights can be computed by applicablealgorithms.

The comparison results of parameter values may be stored as comparisonsets, including at least a comparison result (e.g., matching degree) anda dataset identifier (ID) of target datasets. Comparison sets may bestored in the dataset database 104 and/or in other datastore, and/or inany other suitable data format. In some implementations, a predeterminednumber of comparison sets may be stored. In some implementations, thecomparison sets having the highest scoring comparison values up to thepredetermined number may be stored. In some implementations, anunlimited number of comparison sets may be stored. In someimplementations, a predetermined threshold comparison value score may beused to determine which comparison sets are to be stored.

As discussed above, the dataset parameter analysis module 116 maycompute comparison results and generate comparison datasets for eachdataset stored in the dataset database 104. In some implementations, thecomparison datasets may be stored in, with, or in association withdatasets in the dataset database 104. In some implementations, a datasetincluding comparison datasets may be exported by the dataset parameteranalysis module 116 to the GUI generation module 118. The datasetparameter analysis module 116 may access the dataset database 104 tostore comparison value information in the dataset database 104. Thedataset parameter analysis module 116 may further store any or allinformation associated with datasets in the dataset database 104.

In some implementations, the dataset parameter analysis module 116 maybe configured to reduce comparison value computation loads. Techniquesfor reducing computation loads may include reducing the number ofdatasets between which comparison values are computed and prioritizingthe calculation of terms based on feature weights. Reducing the numberof datasets between which comparison values are computed may beperformed by computing comparison values only between datasets thatshare certain criteria.

In some embodiments, the GUI generation module 118 serves as a module inoperation on the computer system(s) 106 and/or on the user device(s)130. In some embodiments, the GUI generation module 118 includesprogramming instructions that cause the computer system(s) 106 and/orthe user device(s) 130 to generate a GUI for presenting relationshipsdetermined based on parameter analysis by the dataset parameter analysismodule 116. In some embodiments, a GUI generated by the GUI generationmodule 118 includes a node map GUI in which relationships among datasetsare presented by a node map format, and a non-map statistic GUI in whichrelationships among datasets are presented by a non-node map format.Details of GUIs generated by the GUI generation module 118 are discussedbelow with reference to FIGS. 2 and 3. In some embodiments, the GUIgeneration module 118 generates a GUI for presenting relationships(e.g., node map) repeatedly at different points in time, and furthergenerates a graphical presentation showing transition of therelationships among the datasets according to time passage.

In some embodiments, the dataset filtering module 120 serves as a modulein operation on the computer system(s) 106 and/or on the user device(s)130. In some embodiments, the dataset filtering module 120 includesprogramming instructions that cause the computer system(s) 106 and/orthe user device(s) 130 to filter datasets for which the GUI presentingrelationships is generated by the GUI generation module 118. Filteringcriteria employed by the dataset filtering module 120 may include anyapplicable criteria. For example, the filtering criteria includes one ormore of data source or data path (e.g., in path, outside path), lastupdate limit (i.e., a time range during which dataset has been updated),time elapsed since last updates and/or generation, type of datasets(e.g., original datasets, derivative datasets), data state of datasets(e.g., active, discarded, etc.) and key word, and so on. The filteringcriteria may be an inclusive criteria with which datasets matching theinclusive criteria are included in the datasets for the GUI or anexclusive criteria with which dataset matching the exclusive criteriaare excluded from the datasets for the GUI.

In some embodiments, the dataset filtering module 120 causes the GUIgeneration module 118 to generate a GUI for a user to input a filteringcriteria along with or separately from the GUI for presentingrelationship among datasets. An example of the GUI for inputtingfiltering criteria is described below with reference to FIG. 2.

Although illustrated in FIG. 1 as a single component, the computersystem(s) 106 and the user device(s) 130 may each include a plurality ofindividual components (e.g., computer devices) each programmed with atleast some of the functions described herein. In this manner, somecomponents of the computer system(s) 106 and/or the user device(s) 130may perform some functions while other components may perform otherfunctions, as would be appreciated. The one or more processors 108 mayeach include one or more physical processors that are programmed bycomputer program instructions. The various instructions described hereinare exemplary only. Other configurations and numbers of instructions maybe used, so long as the processor(s) 108 are programmed to perform thefunctions described herein.

Furthermore, it should be appreciated that although the variousinstructions are illustrated in FIG. 1 as being co-located within asingle processing unit, in implementations in which processor(s) 108includes multiple processing units, one or more instructions may beexecuted remotely from the other instructions.

Additionally, the modular breakdown as illustrated in FIG. 1 is preparedfor illustrative purposes only. The various instructions described withrespect to specific modules may be implemented by alternative modulesconfigured in different arrangements and with alternative function sets.

The description of the functionality provided by the differentinstructions described herein is for illustrative purposes, and is notintended to be limiting, as any of instructions may provide more or lessfunctionality than is described. For example, one or more of theinstructions may be eliminated, and some or all of its functionality maybe provided by other ones of the instructions. As another example,processor(s) 108 may be programmed by one or more additionalinstructions that may perform some or all of the functionalityattributed herein to one of the instructions.

The various instructions described herein may be stored in a storagedevice 110, which may comprise random access memory (RAM), read onlymemory (ROM), and/or other memory. The storage device may store thecomputer program instructions (e.g., the aforementioned instructions) tobe executed by processor 108 as well as data that may be manipulated byprocessor 110. The storage device may comprise floppy disks, hard disks,optical disks, tapes, or other storage media for storingcomputer-executable instructions and/or data.

The various components illustrated in FIG. 1 may be coupled to at leastone other component via a network 102, which may include any one or moreof, for instance, the Internet, an intranet, a PAN (Personal AreaNetwork), a LAN (Local Area Network), a WAN (Wide Area Network), a SAN(Storage Area Network), a MAN (Metropolitan Area Network), a wirelessnetwork, a cellular communications network, a Public Switched TelephoneNetwork, and/or other network. In FIG. 1, as well as in other drawingFigures, different numbers of entities than those depicted may be used.Furthermore, according to various implementations, the componentsdescribed herein may be implemented in hardware and/or software thatconfigure hardware.

In some embodiments, the dataset database 104 described herein may be,include, or interface to, for example, an Oracle™ relational databasesold commercially by Oracle Corporation. Other databases, such asInformix™, DB2 (Database 2) or other data storage, including file-based,or query formats, platforms, or resources such as OLAP (On LineAnalytical Processing), SQL (Structured Query Language), a SAN (storagearea network), Microsoft Access™ or others may also be used,incorporated, or accessed. The databases may comprise one or more suchdatabases that reside in one or more physical devices and in one or morephysical locations. The database may store a plurality of types of dataand/or files and associated data or file descriptions, administrativeinformation, or any other data.

In some embodiments, the dataset database 104 includes a referentialtable in which relationship among stored datasets are indicated. In aspecific implementation, the referential table includes a plurality ofentries, and each of the entries corresponding to a single dataset.Further, an entry of the referential table includes an identifier andmetadata of a dataset, and also include various relationships with otherdatasets. For example, in an entry, the various relationships includeidentifiers of other datasets that matches a specific relationship typewith respect to each of a plurality of relationship types (e.g.,analysis relationship, modification relationship, user-interactionrelationship, etc.), and also includes a proximate degree with respectto each of the related datasets. In some embodiments, when the GUIgeneration module 118 generates a GUI presenting relationships amongdatasets, the GUI generation module 118 selectively reads throughentries of datasets for which the GUI is to be generated, and recognizesthe relationships. When the datasets for which the GUI is presented arefiltered by the dataset filtering module 120, the GUI generation module118 limits datasets to be referred to entries corresponding to thefiltered datasets, and updates (regenerates) a GUI corresponding to thefiltered datasets.

FIG. 2 illustrates an example of a GUI 200 for presenting datasetrelationships according to some embodiments. In the example shown inFIG. 2, the GUI 200 is intended to represent a GUI generated andpresented by an applicable module such as the GUI generation module 118in FIG. 1. In some embodiments, the GUI 200 includes a main field 202that is expandable to a full-screen size based on user input, a firstauxiliary field 204, and a second auxiliary field 206. In someembodiments, the main field 202 includes a title field 208 and a contentfield 210. In a specific implementation, the title field 208 includestitle text representing the main field 202, such as “datasetrelationship viewer.” In a specific implementation, the title field 208further includes selectable objects (e.g., tab, icon, etc.) to present anode map GUI and a non-map statistic GUI, respectively, and a selectableobject (e.g., tab, icon, etc.) to pull up the second auxiliary field206. For example, when a selectable object to present a node map GUI isselected (or active), the node map GUI is presented in the main field202, and when a selectable object to present a node map GUI is selected(or active), the non-map statistic GUI is presented in the main field202.

In some embodiments, when a non-map statistic GUI is presented in themain field 202, the content field 210 includes a plurality of contentsubfields 212 a-212 e. Each of the content subfields 212 a-212 epresents unique dataset relationship information. For example, one ofthe content subfields 212 a-212 e (e.g., the content subfield 212 a)presents a total number of datasets for which the GUI is presented, atotal number of analysis datasets included in the datasets for which theGUI is presented, a total number of users associated with (e.g.,authored, accessed, and/or modified by) the datasets for which the GUIis presented, and a total number of links each of which corresponds to arelationship between two datasets. In another example, one or more ofthe content subfields 212 a-212 e (e.g., the content subfield 212 b)presents a list of most analyzed datasets in a sorted order (e.g.,descending order) along with visualization such as bar graph presentingthe number of analysis associated with each dataset. In another example,one or more of the content subfields 212 a-212 e (e.g., the contentsubfield 212 c) presents a list of most viewed analyses in a sortedorder (e.g., descending order) along with visualization such as bargraph presenting the number of views of each analysis dataset. In stillanother example, one or more of the content subfields 212 a-212 e (e.g.,the content subfield 212 d) presents a list of most linked datasets in asorted order (e.g., descending order) along with visualization such asbar graph presenting the number of links of each dataset. In stillanother example, one or more of the content subfields 212 a-212 e (e.g.,the content subfield 212 e) presents a list of authors (e.g., users) ina sorted order (e.g., descending order) along with visualization such asbar graph presenting the number of datasets generated by the authors. Instill another example, one or more of the content subfields 212 a-212 e(e.g., the content subfield 212 b) presents a list of datasets in asorted order (e.g., descending order) along with visualization such asbar graph presenting the number of modification datasets crated fromeach dataset. In still another example, a first one of the contentsubfields 212 a-212 e (e.g., the content subfield 212 d) presents a listof datasets and a second one of the content subfields 212 a-212 e (e.g.,the content subfield 212 e) presents a list of datasets that areanalyzed together with respect to each of the datasets in the first oneof the content subfields 212 a-212 e in a sorted order (e.g., descendingorder) along with visualization such as bar graph presenting the numberof analyzed-in datasets.

In some embodiments, the unique dataset relationship information mayalso include versions of datasets accessed by users, evolution of usageof datasets according to passage of time, a chain of analysis (i.e., asequence of analysis datasets each of which is generated based onanalysis of another analysis dataset), most-frequently-accessed usersfor a dataset, other users who also accessed the same dataset, useraccess patterns, and so on.

In some embodiments, the first auxiliary field 204 includes a searchfield 214, a content field 216, and a metadata field 218. In a specificimplementation, the search field 214 includes a searching box forsearching one or more specific datasets. For example, specific datacorresponding to one or more datasets input in the searching box ispresented in the content field 216 and/or the metadata field 218. Wheninput in the searching box matches more than one datasets, a list ofmatching datasets may be presented, such that one of the matchingdatasets can be selected based on user input. In a specificimplementation, the content field 216 is provided to present a mini nodemap indicating relationship of one or more datasets (hereinaftersearched datasets) input in the search field 214 with one or more otherdatasets that have direct or close relationship with the searcheddatasets. In a specific implementation, the metadata field 218 isprovided to present metadata of the searched datasets. For example,metadata of a dataset includes one or more of a name, a last modifieddate (and time), a datasource, a path, a description, and one or moredatasets that have direct or close relationship with the dataset.

In some embodiments, the second auxiliary field 206 includes a titlefield 222 and a plurality of filtering objects 224 a-d. In a specificimplementation, the second auxiliary field 206 is presented upon userinput to pull up the second auxiliary field 206, and hidden when thesecond auxiliary field 206 is not pulled up or closed. When the secondauxiliary field 206 is not presented, the main field 202 may expand tothe region for the second auxiliary field 206 In some embodiments, thetitle field 222 includes title text representing the second auxiliaryfield 206, such as “filters.” In some embodiments, each of the filteringobjects 224 a-d is a box for inputting or selecting a filtering criteriato filter datasets for which dataset relationship is to be presented inthe main field 202 and/or the first auxiliary field 204. Based on theinput or selection made in the filtering objects 224 a-d, an applicablemodule such as the dataset filtering module 120 in FIG. 1 filtersdataset for which the GUI is generated, and updated data correspondingto the filtered datasets are presented in the main field 202 and/or thefirst auxiliary field 204.

FIG. 3 illustrates examples of a node map GUI for presenting datasetrelationships according to some embodiments. In the example shown inFIG. 3, the node map GUI includes a node map 302 a in a first instance,and includes a focused node map 302 b in a second instance differentfrom the first instance. In some embodiments, the node map GUI ispresented in an applicable presentation field such as the main field 202shown in FIG. 2. In some embodiments, in a node map included in the nodemap GUI, each of a plurality of dots (nodes) represents a dataset andeach of a plurality of lines (links) connecting dots represents arelationship of connected dots. A length of a line is determined basedon an proximity degree of relationship between related datasets, whichare determined according to a DGC algorithm. In some embodiments, thedatasets are presented by different colors depending on the type ofdatasets, and legend showing correspondence between colors and type ofdatasets are presented in the node map. For example, original datasetsare presented by dots of a first color, analysis datasets are presentedby dots of a second color, and user-interaction datasets are presentedby dots of a third color. In some embodiments, a node map GUI isexpandable to a full-screen size, and a size, a zoom ratio, and/or anangle of node map in the node map GUI can be arbitrarily selectable, forexample, based on user input. In some embodiments, one or more of thedots and/or the lines in a node map are selectable, and upon selectionof a dot or a line, detailed information about the selected dot or lineis presented in a graphical interface field such as the first auxiliaryfield 204 shown in FIG. 2.

In some embodiments, the focused node map 302 a shows relationships ofall datasets that are currently selected (and filtered). According tothe focused node map 302 a, a user may recognize that a plurality ofanalysis datasets are generated based on each of some original datasets,and some original datasets are interacted by some users, i.e., relatedto some user-interaction datasets. Also, a user may recognize that someanalysis datasets are generated based on other analysis datasets. When asingle dot corresponding to a single dataset is selected from the nodemap 302 a, the focused node map 302 b is presented.

In some embodiments, the focused node map 302 b shows relationshipsamong datasets that are in direct and/or close relationship with aselected dataset with emphasis over datasets that are not in directand/or close relationship with the selected dataset. According to thefocused node map 302 b, a user may recognize dataset relationship ofdatasets associated with a selected dataset. Depending on a specificimplementation of the embodiments, any applicable manner of emphasis canbe employed. For example, datasets that are not in direct and/or closerelationship with a selected dataset may be presented with blurred dotsand lines, faint-color dots and lines, partially-transparent dots andlines, smaller dots and thinner lines, and so on.

FIG. 4 is a flowchart 400 of an example of a method for managingrelationships among datasets according to some embodiments. Thisflowchart described in this paper illustrate modules (and potentiallydecision points) organized in a fashion that is conducive tounderstanding. It should be recognized, however, that the modules can bereorganized for parallel execution, reordered, modified (changed,removed, or augmented), where circumstances permit.

In module 402 of FIG. 4, original datasets are stored in datastore. Anapplicable module for receiving and/or generating original datasets,such as the dataset generation and reception module 112 in FIG. 1,receives and/or generates the original datasets. In a specificimplementation, the original datasets are received and/or generated atdifferent timings, and upon reception and/or generation of originaldatasets, the received and/or generated original datasets are stored inthe datastore. For the datastore, applicable datastore such as thedataset database 104 in FIG. 1 is employed.

In module 404 of FIG. 4, first derivative datasets are generated andstored in datastore. An applicable module for generating firstderivative datasets, such as the dataset generation and reception module112 in FIG. 1, generates the first derivative datasets. The firstderivative datasets are generated directly based on one or more of thestored original datasets (and not based on other first derivativedatasets nor other derivative datasets of larger degree (e.g., second,third, . . . derivative datasets)). In a specific implementation, thefirst derivative datasets may include one or more types of analysisdatasets, user-interaction datasets, modification datasets. In aspecific implementation, the first derivative datasets are generatedbased on user manipulation of the original datasets, and/orautomatically generated based on a specific analysis and/or modificationalgorithm applied to original datasets. For the datastore, applicabledatastore such as the dataset database 104 in FIG. 1 is employed.

In module 406 of FIG. 4, second derivative datasets are generated andstored in datastore. An applicable module for generating secondderivative datasets, such as the dataset generation and reception module112 in FIG. 1, generates the second derivative datasets. The secondderivative datasets are generated at least based on one or more of thefirst derivative datasets (and not based on other second derivativedatasets nor other derivative datasets of larger degree (e.g., third,fourth, . . . derivative datasets), in a similar manner as generation ofthe first derivative dataset performed in module 404. That is, in aspecific implementation, the second derivative datasets may include oneor more types of analysis datasets, user-interaction datasets,modification datasets. Also, in a specific implementation, the secondderivative datasets are generated based on user manipulation of thefirst datasets (and original datasets), and/or automatically generatedbased on a specific analysis and/or modification algorithm applied tofirst datasets (and the original datasets). For the datastore,applicable datastore such as the dataset database 104 in FIG. 1 isemployed.

In module 408 of FIG. 4, third derivative datasets are generated andstored in datastore. An applicable module for generating thirdderivative datasets, such as the dataset generation and reception module112 in FIG. 1, generates the third derivative datasets. The thirdderivative datasets are generated at least based on one or more of thesecond derivative datasets (and not based on other third derivativedatasets nor other derivative datasets of larger degree (e.g., fourth,fifth, . . . derivative datasets), in a similar manner as generation ofthe first derivative dataset performed in module 404 and/or the secondderivative dataset performed in module 406.

In module 410 of FIG. 4, parameters of stored datasets, such as theoriginal, first, second, third, . . . , datasets are extracted andparameter values of the extracted parameters are determined. Anapplicable module for extracting parameters and determining parametervalues, such as the dataset parameter extraction module 114 in FIG. 1,extract parameters and determined parameter valued with respect to thestored datasets. In some implementation, the parameters are extractedfrom metadata of the stored datasets. In some implementation, theparameters are extracted from contents of the stored datasets.

In module 412 of FIG. 4, relationships among stored datasets, such asthe original, first, second, third, . . . , datasets are determinedbased the parameter values of the parameters extracted from the storeddatasets. An applicable module for determining relationships amongstored datasets, such as the dataset parameter analysis module 116 inFIG. 1, determines the relationships among the stored datasets. In aspecific implementation, the type of relationships among the storeddatasets such as an analysis relationship, an inclusive relationship, amodification relationship, and user relationship is determined in module410. Also, a proximate degree of the relationships among the storeddatasets is determined based on an applicable algorithm such as the DGCalgorithm in module 410.

In module 414 of FIG. 4, graphical presentation of analyzedrelationships among the stored datasets, such as the original, first,second, third, . . . , datasets is generated. An applicable module forgenerating graphical presentation of analyzed relationships among thestored datasets, such as the GUI generation module 118 in FIG. 1,generates the graphical presentation of analyzed relationships among thestored datasets. In a specific implementation, the generated graphicalpresentation includes a non-map statistic GUI (e.g., the GUI 200 in FIG.2) and/or a node-map GUI (e.g., the GUI 302 a, 302 b in FIG. 3).

In module 416 of FIG. 4, stored datasets for which the graphicalpresentation is generated is filtered based on filtering criteria. Anapplicable module for filtering stored datasets for which the graphicalpresentation is generated, such as the dataset filtering module 120 inFIG. 1, filters the stored datasets for which the graphical presentationis generated. In a specific implementation, the filtering criteriaincludes one or more of data source (e.g., in path, outside path), lastupdate time, time elapsed since last build, type of datasets (e.g.,original datasets, derivative datasets), data state of datasets (e.g.,active, discarded, etc.) and key word, and so on.

In module 418 of FIG. 4, graphical presentation generated in module 414is modified based on datasets filtered in module 416. An applicablemodule for modifying graphical presentation, such as the GUI generationmodule 118 in FIG. 1, modifies the graphical presentation based on thefiltered datasets. In a specific implementation, the modification of thegraphical presentation includes updates of statistic informationpresented in a non-map statistic GUI (e.g., the GUI 200 in FIG. 2)and/or updates by exclusion of nodes and links presented in a node mapin a node-map GUI (e.g., the GUI 302 a, 302 b in FIG. 3).

Hardware Implementation

The techniques described herein are implemented by one or morespecial-purpose computing devices. The special-purpose computing devicesmay be hard-wired to perform the techniques, or may include circuitry ordigital electronic devices such as one or more application-specificintegrated circuits (ASICs) or field programmable gate arrays (FPGAs)that are persistently programmed to perform the techniques, or mayinclude one or more hardware processors programmed to perform thetechniques pursuant to program instructions in firmware, memory, otherstorage, or a combination. Such special-purpose computing devices mayalso combine custom hard-wired logic, ASICs, or FPGAs with customprogramming to accomplish the techniques. The special-purpose computingdevices may be desktop computer systems, server computer systems,portable computer systems, handheld devices, networking devices or anyother device or combination of devices that incorporate hard-wiredand/or program logic to implement the techniques.

Computing device(s) are generally controlled and coordinated byoperating system software, such as iOS, Android, Chrome OS, Windows XP,Windows Vista, Windows 7, Windows 8, Windows Server, Windows CE, Unix,Linux, SunOS, Solaris, iOS, Blackberry OS, VxWorks, or other compatibleoperating systems. In other embodiments, the computing device may becontrolled by a proprietary operating system. Conventional operatingsystems control and schedule computer processes for execution, performmemory management, provide file system, networking, I/O services, andprovide a user interface functionality, such as a graphical userinterface (“GUI”), among other things.

FIG. 5 is a block diagram that illustrates a computer system 500 uponwhich any of the embodiments described herein may be implemented. Thecomputer system 500 includes a bus 502 or other communication mechanismfor communicating information, one or more hardware processors 504coupled with bus 502 for processing information. Hardware processor(s)504 may be, for example, one or more general purpose microprocessors.

The computer system 500 also includes a main memory 506, such as arandom access memory (RAM), cache and/or other dynamic storage devices,coupled to bus 502 for storing information and instructions to beexecuted by processor 504. Main memory 506 also may be used for storingtemporary variables or other intermediate information during executionof instructions to be executed by processor 504. Such instructions, whenstored in storage media accessible to processor 504, render computersystem 500 into a special-purpose machine that is customized to performthe operations specified in the instructions.

The computer system 500 further includes a read only memory (ROM) 508 orother static storage device coupled to bus 502 for storing staticinformation and instructions for processor 504. A storage device 510,such as a magnetic disk, optical disk, or USB thumb drive (Flash drive),etc., is provided and coupled to bus 502 for storing information andinstructions.

The computer system 500 may be coupled via bus 502 to a display 512,such as a cathode ray tube (CRT) or LCD display (or touch screen), fordisplaying information to a computer user. An input device 514,including alphanumeric and other keys, is coupled to bus 502 forcommunicating information and command selections to processor 504.Another type of user input device is cursor control 516, such as amouse, a trackball, or cursor direction keys for communicating directioninformation and command selections to processor 504 and for controllingcursor movement on display 512. This input device typically has twodegrees of freedom in two axes, a first axis (e.g., x) and a second axis(e.g., y), that allows the device to specify positions in a plane. Insome embodiments, the same direction information and command selectionsas cursor control may be implemented via receiving touches on a touchscreen without a cursor.

The computing system 500 may include a user interface module toimplement a GUI that may be stored in a mass storage device asexecutable software codes that are executed by the computing device(s).This and other modules may include, by way of example, components, suchas software components, object-oriented software components, classcomponents and task components, processes, functions, attributes,procedures, subroutines, segments of program code, drivers, firmware,microcode, circuitry, data, databases, data structures, tables, arrays,and variables.

In general, the word “module,” as used herein, refers to logic embodiedin hardware or firmware, or to a collection of software instructions,possibly having entry and exit points, written in a programminglanguage, such as, for example, Java, C or C++. The word “module” mayrefer to a software module that may be compiled and linked into anexecutable program, installed in a dynamic link library, or may bewritten in an interpreted programming language such as, for example,BASIC, Perl, or Python. It will be appreciated that software modules maybe callable from other modules or from themselves, and/or may be invokedin response to detected events or interrupts. Software modulesconfigured for execution on computing devices may be provided on acomputer readable medium, such as a compact disc, digital video disc,flash drive, magnetic disc, or any other tangible medium, or as adigital download (and may be originally stored in a compressed orinstallable format that requires installation, decompression ordecryption prior to execution). Such software code may be stored,partially or fully, on a memory device of the executing computingdevice, for execution by the computing device. Software instructions maybe embedded in firmware, such as an EPROM. It will be furtherappreciated that hardware modules may be comprised of connected logicunits, such as gates and flip-flops, and/or may be comprised ofprogrammable units, such as programmable gate arrays or processors. Themodules or computing device functionality described herein arepreferably implemented as software modules, but may be represented inhardware or firmware. Generally, the modules described herein refer tological modules that may be combined with other modules or divided intosub-modules despite their physical organization or storage.

The computer system 500 may implement the techniques described hereinusing customized hard-wired logic, one or more ASICs or FPGAs, firmwareand/or program logic which in combination with the computer systemcauses or programs computer system 500 to be a special-purpose machine.According to one embodiment, the techniques herein are performed bycomputer system 500 in response to processor(s) 504 executing one ormore sequences of one or more instructions contained in main memory 506.Such instructions may be read into main memory 506 from another storagemedium, such as storage device 510. Execution of the sequences ofinstructions contained in main memory 506 causes processor(s) 504 toperform the process steps described herein. In alternative embodiments,hard-wired circuitry may be used in place of or in combination withsoftware instructions.

The term “non-transitory media,” and similar terms, as used hereinrefers to any media that store data and/or instructions that cause amachine to operate in a specific fashion. Such non-transitory media maycomprise non-volatile media and/or volatile media. Non-volatile mediaincludes, for example, optical or magnetic disks, such as storage device510. Volatile media includes dynamic memory, such as main memory 506.Common forms of non-transitory media include, for example, a floppydisk, a flexible disk, hard disk, solid state drive, magnetic tape, orany other magnetic data storage medium, a CD-ROM, any other optical datastorage medium, any physical medium with patterns of holes, a RAM, aPROM, and EPROM, a FLASH-EPROM, NVRAM, any other memory chip orcartridge, and networked versions of the same.

Non-transitory media is distinct from but may be used in conjunctionwith transmission media. Transmission media participates in transferringinformation between non-transitory media. For example, transmissionmedia includes coaxial cables, copper wire and fiber optics, includingthe wires that comprise bus 502. Transmission media can also take theform of acoustic or light waves, such as those generated duringradio-wave and infra-red data communications.

Various forms of media may be involved in carrying one or more sequencesof one or more instructions to processor 504 for execution. For example,the instructions may initially be carried on a magnetic disk or solidstate drive of a remote computer. The remote computer can load theinstructions into its dynamic memory and send the instructions over atelephone line using a modem. A modem local to computer system 500 canreceive the data on the telephone line and use an infra-red transmitterto convert the data to an infra-red signal. An infra-red detector canreceive the data carried in the infra-red signal and appropriatecircuitry can place the data on bus 502. Bus 502 carries the data tomain memory 506, from which processor 504 retrieves and executes theinstructions. The instructions received by main memory 506 may retrievesand executes the instructions. The instructions received by main memory506 may optionally be stored on storage device 510 either before orafter execution by processor 504.

The computer system 500 also includes a communication interface 518coupled to bus 502. Communication interface 518 provides a two-way datacommunication coupling to one or more network links that are connectedto one or more local networks. For example, communication interface 518may be an integrated services digital network (ISDN) card, cable modem,satellite modem, or a modem to provide a data communication connectionto a corresponding type of telephone line. As another example,communication interface 518 may be a local area network (LAN) card toprovide a data communication connection to a compatible LAN (or WANcomponent to communicated with a WAN). Wireless links may also beimplemented. In any such implementation, communication interface 518sends and receives electrical, electromagnetic or optical signals thatcarry digital data streams representing various types of information.

A network link typically provides data communication through one or morenetworks to other data devices. For example, a network link may providea connection through local network to a host computer or to dataequipment operated by an Internet Service Provider (ISP). The ISP inturn provides data communication services through the world wide packetdata communication network now commonly referred to as the “Internet”.Local network and Internet both use electrical, electromagnetic oroptical signals that carry digital data streams. The signals through thevarious networks and the signals on network link and throughcommunication interface 518, which carry the digital data to and fromcomputer system 500, are example forms of transmission media.

The computer system 500 can send messages and receive data, includingprogram code, through the network(s), network link and communicationinterface 518. In the Internet example, a server might transmit arequested code for an application program through the Internet, the ISP,the local network and the communication interface 518.

The received code may be executed by processor 504 as it is received,and/or stored in storage device 510, or other non-volatile storage forlater execution.

Each of the processes, methods, and algorithms described in thepreceding sections may be embodied in, and fully or partially automatedby, code modules executed by one or more computer systems or computerprocessors comprising computer hardware. The processes and algorithmsmay be implemented partially or wholly in application-specificcircuitry.

The various features and processes described above may be usedindependently of one another, or may be combined in various ways. Allpossible combinations and sub-combinations are intended to fall withinthe scope of this disclosure. In addition, certain method or processblocks may be omitted in some implementations. The methods and processesdescribed herein are also not limited to any particular sequence, andthe blocks or states relating thereto can be performed in othersequences that are appropriate. For example, described blocks or statesmay be performed in an order other than that specifically disclosed, ormultiple blocks or states may be combined in a single block or state.The example blocks or states may be performed in serial, in parallel, orin some other manner. Blocks or states may be added to or removed fromthe disclosed example embodiments. The example systems and componentsdescribed herein may be configured differently than described. Forexample, elements may be added to, removed from, or rearranged comparedto the disclosed example embodiments.

Conditional language, such as, among others, “can,” “could,” “might,” or“may,” unless specifically stated otherwise, or otherwise understoodwithin the context as used, is generally intended to convey that certainembodiments include, while other embodiments do not include, certainfeatures, elements and/or steps. Thus, such conditional language is notgenerally intended to imply that features, elements and/or steps are inany way required for one or more embodiments or that one or moreembodiments necessarily include logic for deciding, with or without userinput or prompting, whether these features, elements and/or steps areincluded or are to be performed in any particular embodiment.

Any process descriptions, elements, or blocks in the flow diagramsdescribed herein and/or depicted in the attached figures should beunderstood as potentially representing modules, segments, or portions ofcode which include one or more executable instructions for implementingspecific logical functions or steps in the process. Alternateimplementations are included within the scope of the embodimentsdescribed herein in which elements or functions may be deleted, executedout of order from that shown or discussed, including substantiallyconcurrently or in reverse order, depending on the functionalityinvolved, as would be understood by those skilled in the art.

It should be emphasized that many variations and modifications may bemade to the above-described embodiments, the elements of which are to beunderstood as being among other acceptable examples. All suchmodifications and variations are intended to be included herein withinthe scope of this disclosure. The foregoing description details certainembodiments of the invention. It will be appreciated, however, that nomatter how detailed the foregoing appears in text, the invention can bepracticed in many ways. As is also stated above, it should be noted thatthe use of particular terminology when describing certain features oraspects of the invention should not be taken to imply that theterminology is being re-defined herein to be restricted to including anyspecific characteristics of the features or aspects of the inventionwith which that terminology is associated. The scope of the inventionshould therefore be construed in accordance with the appended claims andany equivalents thereof.

Engines, Components, and Logic

Certain embodiments are described herein as including logic or a numberof components, engines, or mechanisms. Engines may constitute eithersoftware engines (e.g., code embodied on a machine-readable medium) orhardware engines. A “hardware engine” is a tangible unit capable ofperforming certain operations and may be configured or arranged in acertain physical manner. In various example embodiments, one or morecomputer systems (e.g., a standalone computer system, a client computersystem, or a server computer system) or one or more hardware engines ofa computer system (e.g., a processor or a group of processors) may beconfigured by software (e.g., an application or application portion) asa hardware engine that operates to perform certain operations asdescribed herein.

In some embodiments, a hardware engine may be implemented mechanically,electronically, or any suitable combination thereof. For example, ahardware engine may include dedicated circuitry or logic that ispermanently configured to perform certain operations. For example, ahardware engine may be a special-purpose processor, such as aField-Programmable Gate Array (FPGA) or an Application SpecificIntegrated Circuit (ASIC). A hardware engine may also includeprogrammable logic or circuitry that is temporarily configured bysoftware to perform certain operations. For example, a hardware enginemay include software executed by a general-purpose processor or otherprogrammable processor. Once configured by such software, hardwareengines become specific machines (or specific components of a machine)uniquely tailored to perform the configured functions and are no longergeneral-purpose processors. It will be appreciated that the decision toimplement a hardware engine mechanically, in dedicated and permanentlyconfigured circuitry, or in temporarily configured circuitry (e.g.,configured by software) may be driven by cost and time considerations.

Accordingly, the phrase “hardware engine” should be understood toencompass a tangible entity, be that an entity that is physicallyconstructed, permanently configured (e.g., hardwired), or temporarilyconfigured (e.g., programmed) to operate in a certain manner or toperform certain operations described herein. As used herein,“hardware-implemented engine” refers to a hardware engine. Consideringembodiments in which hardware engines are temporarily configured (e.g.,programmed), each of the hardware engines need not be configured orinstantiated at any one instance in time. For example, where a hardwareengine comprises a general-purpose processor configured by software tobecome a special-purpose processor, the general-purpose processor may beconfigured as respectively different special-purpose processors (e.g.,comprising different hardware engines) at different times. Softwareaccordingly configures a particular processor or processors, forexample, to constitute a particular hardware engine at one instance oftime and to constitute a different hardware engine at a differentinstance of time.

Hardware engines can provide information to, and receive informationfrom, other hardware engines. Accordingly, the described hardwareengines may be regarded as being communicatively coupled. Where multiplehardware engines exist contemporaneously, communications may be achievedthrough signal transmission (e.g., over appropriate circuits and buses)between or among two or more of the hardware engines. In embodiments inwhich multiple hardware engines are configured or instantiated atdifferent times, communications between such hardware engines may beachieved, for example, through the storage and retrieval of informationin memory structures to which the multiple hardware engines have access.For example, one hardware engine may perform an operation and store theoutput of that operation in a memory device to which it iscommunicatively coupled. A further hardware engine may then, at a latertime, access the memory device to retrieve and process the storedoutput. Hardware engines may also initiate communications with input oroutput devices, and can operate on a resource (e.g., a collection ofinformation).

The various operations of example methods described herein may beperformed, at least partially, by one or more processors that aretemporarily configured (e.g., by software) or permanently configured toperform the relevant operations. Whether temporarily or permanentlyconfigured, such processors may constitute processor-implemented enginesthat operate to perform one or more operations or functions describedherein. As used herein, “processor-implemented engine” refers to ahardware engine implemented using one or more processors.

Similarly, the methods described herein may be at least partiallyprocessor-implemented, with a particular processor or processors beingan example of hardware. For example, at least some of the operations ofa method may be performed by one or more processors orprocessor-implemented engines. Moreover, the one or more processors mayalso operate to support performance of the relevant operations in a“cloud computing” environment or as a “software as a service” (SaaS).For example, at least some of the operations may be performed by a groupof computers (as examples of machines including processors), with theseoperations being accessible via a network (e.g., the Internet) and viaone or more appropriate interfaces (e.g., an Application ProgramInterface (API)).

The performance of certain of the operations may be distributed amongthe processors, not only residing within a single machine, but deployedacross a number of machines. In some example embodiments, the processorsor processor-implemented engines may be located in a single geographiclocation (e.g., within a home environment, an office environment, or aserver farm). In other example embodiments, the processors orprocessor-implemented engines may be distributed across a number ofgeographic locations.

LANGUAGE

Throughout this specification, plural instances may implementcomponents, operations, or structures described as a single instance.Although individual operations of one or more methods are illustratedand described as separate operations, one or more of the individualoperations may be performed concurrently, and nothing requires that theoperations be performed in the order illustrated. Structures andfunctionality presented as separate components in example configurationsmay be implemented as a combined structure or component. Similarly,structures and functionality presented as a single component may beimplemented as separate components. These and other variations,modifications, additions, and improvements fall within the scope of thesubject matter herein.

Although an overview of the subject matter has been described withreference to specific example embodiments, various modifications andchanges may be made to these embodiments without departing from thebroader scope of embodiments of the present disclosure. Such embodimentsof the subject matter may be referred to herein, individually orcollectively, by the term “invention” merely for convenience and withoutintending to voluntarily limit the scope of this application to anysingle disclosure or concept if more than one is, in fact, disclosed.

The embodiments illustrated herein are described in sufficient detail toenable those skilled in the art to practice the teachings disclosed.Other embodiments may be used and derived therefrom, such thatstructural and logical substitutions and changes may be made withoutdeparting from the scope of this disclosure. The Detailed Description,therefore, is not to be taken in a limiting sense, and the scope ofvarious embodiments is defined only by the appended claims, along withthe full range of equivalents to which such claims are entitled.

It will be appreciated that an “engine,” “system,” “data store,” and/or“database” may comprise software, hardware, firmware, and/or circuitry.In one example, one or more software programs comprising instructionscapable of being executable by a processor may perform one or more ofthe functions of the engines, data stores, databases, or systemsdescribed herein. In another example, circuitry may perform the same orsimilar functions. Alternative embodiments may comprise more, less, orfunctionally equivalent engines, systems, data stores, or databases, andstill be within the scope of present embodiments. For example, thefunctionality of the various systems, engines, data stores, and/ordatabases may be combined or divided differently.

“Open source” software is defined herein to be source code that allowsdistribution as source code as well as compiled form, with awell-publicized and indexed means of obtaining the source, optionallywith a license that allows modifications and derived works.

The data stores described herein may be any suitable structure (e.g., anactive database, a relational database, a self-referential database, atable, a matrix, an array, a flat file, a documented-oriented storagesystem, a non-relational No-SQL system, and the like), and may becloud-based or otherwise.

As used herein, the term “or” may be construed in either an inclusive orexclusive sense. Moreover, plural instances may be provided forresources, operations, or structures described herein as a singleinstance. Additionally, boundaries between various resources,operations, engines, engines, and data stores are somewhat arbitrary,and particular operations are illustrated in a context of specificillustrative configurations. Other allocations of functionality areenvisioned and may fall within a scope of various embodiments of thepresent disclosure. In general, structures and functionality presentedas separate resources in the example configurations may be implementedas a combined structure or resource. Similarly, structures andfunctionality presented as a single resource may be implemented asseparate resources. These and other variations, modifications,additions, and improvements fall within a scope of embodiments of thepresent disclosure as represented by the appended claims. Thespecification and drawings are, accordingly, to be regarded in anillustrative rather than a restrictive sense.

Conditional language, such as, among others, “can,” “could,” “might,” or“may,” unless specifically stated otherwise, or otherwise understoodwithin the context as used, is generally intended to convey that certainembodiments include, while other embodiments do not include, certainfeatures, elements and/or steps. Thus, such conditional language is notgenerally intended to imply that features, elements and/or steps are inany way required for one or more embodiments or that one or moreembodiments necessarily include logic for deciding, with or without userinput or prompting, whether these features, elements and/or steps areincluded or are to be performed in any particular embodiment.

Although the invention has been described in detail for the purpose ofillustration based on what is currently considered to be the mostpractical and preferred implementations, it is to be understood thatsuch detail is solely for that purpose and that the invention is notlimited to the disclosed implementations, but, on the contrary, isintended to cover modifications and equivalent arrangements that arewithin the spirit and scope of the appended claims. For example, it isto be understood that the present invention contemplates that, to theextent possible, one or more features of any embodiment can be combinedwith one or more features of any other embodiment.

The invention claimed is:
 1. A system comprising: one or more hardwareprocessors; and a memory storing instructions that, when executed by theone or more hardware processors, cause the system to perform: storingoriginal datasets in a datastore; generating first derivative datasetsfrom the original datasets; generating second derivative datasets fromat least the first derivative datasets; determining relationships amongthe original datasets, the first derivative datasets, and the secondderivative datasets, based on an analytical relationship between twodatasets, a similarity relationship between two datasets, a modificationrelationship between two datasets, and a user-interaction relationshipbetween two datasets; generating a node map including a plurality ofnodes and links between the plurality of nodes, wherein the plurality ofnodes comprise at least a part of the original datasets, the firstderivative datasets, and the second derivative datasets, and the linksrepresent at least a part of the determined analytical, similarity,modification, and user-interaction relationships; presenting data of thenode map in a main field of a graphical user interface (GUI); presentingsearched or selected data of the node map in an auxiliary field of theGUI, the auxiliary field being presented at a side of the main field;inputting or selecting, in a second auxiliary field of the GUI, criteriafor filtering the original datasets, the first derivative datasets, andthe second derivative datasets, wherein the main field decreases in sizein response to the second auxiliary field being opened; and in responseto the inputting or selecting the criteria for filtering, updating thedata of the node map in the main field and the searched or selected dataof the node map in the auxiliary field based on the inputted or selectedcriteria for filtering, wherein: the updating the data of the node mapin the main field comprises generating a focused node map including aselected node associated with the criteria and one or more nodes linkedwith the selected node, and at least one of the linked nodes in thefocused node map being visualized with emphasis based on respectivetypes of each of the determined relationships.
 2. The system of claim 1,wherein the instructions further cause the system to perform generatingthird derivative datasets based on consumption of at least the secondderivative datasets, wherein the determined relationships are among theoriginal datasets, the first derivative datasets, the second derivativedatasets, and the third derivative datasets, and the node map alsoincludes at least a part of the third derivative datasets as a node. 3.The system of claim 1, wherein the filtering is carried out at leastbased on times at which datasets were generated.
 4. The system of claim1, wherein the analytical relationship includes a relationship between adataset and an analyzed dataset that was generated based on analysis ofthe dataset.
 5. The system of claim 1, wherein the similarityrelationship includes a relationship among a plurality of datasets thatwere analyzed together.
 6. The system of claim 1, wherein themodification relationship includes a relationship between a dataset anda modified dataset that was generated based on modification of thedataset.
 7. The system of claim 1, wherein the user-interactionrelationship includes a relationship between a dataset and a userdataset of a user that has interacted with the dataset.
 8. The system ofclaim 1, wherein representations of the node map are generatedrepeatedly at different points in time, and the instructions furthercause the system to perform presenting transition of the generatedrepresentations, the presenting transition of the generatedrepresentations comprising showing a transition of the determinedrelationships indicating a degree of directness or a proximity amongnodes of the generated representations over time.
 9. A computerimplemented method performed on a computer system having one or morehardware processors programmed with computer program instructions that,when executed by the one or more hardware processors, cause the computersystem to perform the method, the method comprising: storing originaldatasets in a datastore; generating first derivative datasets from theoriginal datasets; generating second derivative datasets from at leastthe first derivative datasets; determining relationships among theoriginal datasets, the first derivative datasets, the second derivativedatasets, based on an analytical relationship between two datasets, asimilarity relationship between two datasets, a modificationrelationship between two datasets, and a user-interaction relationshipbetween two datasets; generating a node map including a plurality ofnodes and links between the plurality of nodes, wherein the plurality ofnodes comprise at least a part of the original datasets, the firstderivative datasets, and the second derivative datasets, and the linksrepresent at least a part of the determined analytical, similarity,modification, and user-interaction relationships; presenting data of thenode map in a main field of a graphical user interface (GUI); presentingsearched or selected data of the node map in an auxiliary field of theGUI, the auxiliary field being presented at a side of the main field;inputting or selecting, in a second auxiliary field of the GUI, criteriafor filtering the original datasets, the first derivative datasets, andthe second derivative datasets, wherein the main field decreases in sizein response to the second auxiliary field being opened; and in responseto the inputting or selecting the criteria for filtering, updating thedata of the node map in the main field and the searched or selected dataof the node map in the auxiliary field based on the inputted or selectedcriteria for filtering, wherein: the updating the data of the node mapin the main field comprises generating a focused node map including aselected node associated with the criteria and one or more nodes linkedwith the selected node, and at least one of the linked nodes in thefocused node map being visualized with emphasis based on respectivetypes of each of the determined relationships.
 10. The method of claim9, further comprising generating third derivative datasets based onconsumption of at least the second derivative datasets, wherein thedetermined relationships are among the original datasets, the firstderivative datasets, the second derivative datasets, and the thirdderivative datasets, and the node map also includes at least a part ofthe third derivative datasets as a node.
 11. The method of claim 9,wherein the filtering is carried out at least based on times at whichdatasets were generated.
 12. The method of claim 9, wherein theanalytical relationship includes a relationship between a dataset and ananalyzed dataset that was generated based on analysis of the dataset.13. The method of claim 9, wherein the similarity relationship includesa relationship among a plurality of datasets that were analyzedtogether.
 14. The method of claim 9, wherein the modificationrelationship includes a relationship between a dataset and a modifieddataset that was generated based on modification of the dataset.
 15. Themethod of claim 9, wherein the user-interaction relationship includes arelationship between a dataset and a user dataset of a user that hasinteracted with the dataset.
 16. The method of claim 9, whereinrepresentations of the node map are generated repeatedly at differentpoints in time, and the instructions further cause the system to performpresenting transition of the generated representations, the presentingtransition of the generated representations comprising showing atransition of the determined relationships indicating a degree ofdirectness or a proximity among nodes of the generated representationsover time.